package com.itfenghuang.day05;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class A02_LocalDateTime {
    public static void main(String[] args) {
        /**
         * 正加 负减
         * 日期时间类: 操作日期时间 jdk8新特性
         *
         * 1.概述
         *      LocalDate:  日期类
         *      LocalTime:  时间类
         *      LocalDateTime: 日期时间类
         * 2.LocalDateTime
         *
         *  成员方法:
         *      piblic static LocalDateTime now()
         *      从默认市区的系统时钟获取当前的日期时间 now Date()
         *
         *      格式化和解析
         *       public String format(DateTimeFormatter formatter)
         *       参数:DateTimeFormatter 一个日期格式化器
         *        public static DateTimeFormatter ofPattern(String pattern) 使用指定的格式化
         */
//        minus开头的方法：
//        public LocalDateTime minusYears(long years) 减去或加上年
//        public LocalDateTime minusMonths(long months)减去或加上月
//        public LocalDateTime minusDays(long days) 减去或加上天
//        public LocalDateTime minusHours(long hours) 减去或加上小时
//        public LocalDateTime minusMinutes(long minutes) 减去或加上分钟
//        public LocalDateTime minusSeconds(long seconds) 减去或加上秒
//        public LocalDateTime minusWeeks(long weeks) 减去或加上周



//        public LocalDateTime withYear(int year) 修改年份
//        public LocalDateTime withMonth(int month) 修改月份
//        public LocalDateTime withDayOfMonth(int dayOfMonth) 修改一月中的第几天
//        public LocalDateTime withDayOfYear(int dayOfYear) 修改一年中的第几天
//        public LocalDateTime withHour(int hour) 修改小时
//        public LocalDateTime withMinute(int minute) 修改分钟
//        public LocalDateTime withSecond(int second) 修改秒





//        LocalDateTime localDateTime = new LocalDateTime();//不能创建对象

        LocalDateTime localDateTime1 = LocalDateTime.of(1993, 3, 7, 11, 22, 33);
        //获取系统当前时间
        System.out.println(LocalDateTime.now());
        //获取年
        System.out.println(localDateTime1.getYear());
        //获取月
//        System.out.println(localDateTime.getMonth());//获取英文的月份
//        System.out.println(localDateTime.getMonthValue());//获取阿拉伯数字的月份
        //获取天
        System.out.println(localDateTime1.getDayOfWeek());//周的第几天
        System.out.println(localDateTime1.getDayOfMonth());//月的第几天
        System.out.println(localDateTime1.getDayOfYear());//年的第几天
        //获取时分秒
        System.out.println(localDateTime1.getHour());
        System.out.println(localDateTime1.getMinute());
        System.out.println(localDateTime1.getSecond());

//        System.out.println(localDateTime1.plusDays(+100));
//        System.out.println(localDateTime1.plusDays(-300));
//        System.out.println(localDateTime1.plusHours(-10));
//        System.out.println(localDateTime1.plusYears(-100));
//        System.out.println(localDateTime1.plusMinutes(+1000));
//        System.out.println(localDateTime1.plusMonths(-200));

        //获取年月日
//        LocalDate localDate = localDateTime.toLocalDate();
//        System.out.println(localDate);
        //获取时分秒
//        System.out.println(localDateTime.toLocalTime());

        //格式化和解析
        //DateTimeFormatter 一个日期格式化器
        LocalDateTime localDateTime = LocalDateTime.of(1996, 2, 12, 11, 11, 11, 11);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String format = localDateTime.format(dateTimeFormatter);
        System.out.println(format);
        //解析 public static  LocalDateTime  parse(CharSequence text, DateTimeFormatter formatter)
        //参数  text 日期字符串
        LocalDateTime parse = localDateTime1.parse("2011-11-11 11:11:11", dateTimeFormatter);
        System.out.println(parse);
        System.out.println("=============");

        LocalDateTime localDateTime2 = LocalDateTime.of(1996, 9, 10, 11, 36, 18);
        System.out.println(localDateTime2);
//        System.out.println(localDateTime.withHour(6));
//        //加减  正数:减  负数:加
        System.out.println(localDateTime2.minusDays(-1));
//        //修改
//        System.out.println(localDateTime.withDayOfMonth(22));


    }
}
